// 柯里化 

function test(num1,num2,num3,num4,num5){
    return num1+'://'+num2+':'+num3+'/'+num4+'?'+num5
    // http://www.baidu.com:8080/index.html?name=123&age=18
}
// alert(test.length) // 5


// const t1 = currying(test)
// const t2 = t1('http')
// const t3 = t2('www.baidu.com')
// const t4 = t3('8080')
// const t5 = t4('index.html')
// const t6 = t5('name=123&age=18')

// const t1 = currying(test,'http')
// const t2 = t1('www.baidu.com','8080')
// const t3 = t2('index.html','name=123&age=18')


// const t1 = currying(test,'http','www.baidu.com','8080','index.html','name=123&age=18');

// a = [1,2,3,4,5]
// b = [6,7,8,9,10]
// c = [...a,...b]


function currying(fn,...args){
    let data = args || [];  // 保存参数
    return function(...args){
        data = [...data,...args];
        if(data.length < fn.length){
            return currying(fn,...data);
        }
        else{
            return fn(...data);
        }
    }
}